<?php
namespace auth;
use lib\goodle\GoogleAuthenticator;

class GoogleAuth {
    
    // 对象实例
    protected static $instance;

    // 初始化 参数
    protected function __construct($options = []){}

    /**
     * 外部调用获取实列
     * @param array $options
     * @return static
     */
    public static function instance($options = [])
    {
        if (is_null(self::$instance)) {
            self::$instance = new static($options);
        }
        return self::$instance;
    }
    
    /**
     * 获取二维码地址
     * @param String $username
     * @return String
     */
    public function getQRCode($username='')
    {
        //谷歌验证码
        $google=new GoogleAuthenticator();
        //生成验证秘钥
        $secret = $google->createSecret();
        //生成验证二维码 $username 需要绑定的用户名
        $qrCodeUrl = $google->getQRCodeGoogleUrl($username, $secret);
        //返回
        return [
            "secret"=>$secret,
            "qr_code_url"=>$qrCodeUrl
        ];    
    }

    /**
     * 验证动态验证码
     * @param String $google_secret
     * @param String $code
     */
    public function verifyCode($google_secret,$code)
    {
        //谷歌验证码
        $google=new GoogleAuthenticator();
        //$google_secret 存入的谷歌秘钥  ，$code 谷歌动态验证码
        $checkResult = $google->verifyCode($google_secret, $code, 4);
        if (!$checkResult){
            return false;
        }else{
            return true;
        }
    }
}
